tg-me.com/pyHints/823
Last Update:
یکی از پروژهها رو جابجا کردیم و اینطوری شد که:
بجای docker
از podman
استفاده بشه
بجای docker swarm, docker stack, ...
هم از k8s
استفاده بشه
ی مقدار قبلتر هم که همگی روی ruff
و mypy
رفته بودیم و pre-commit
رو اینطوری تنظیم کردیم.
دیگه یکی از هم تیمیها پیشنهاد داد یعنی یه uv
مون نشه ؟
که سوییچ کردیم روی این مورد (البته قبلش کلی تست زمان build, ...
ازش گرفتیم) دیدیم علاوه بر اینکه تایم بیلد رو آورد پایینتر (حتی تو بیلدهای اپتیمایز خودم) کار کردن باهاش هم نسبت به ورژنهای قبلی خیلی بهتر و راحتتر شده.
اگر شما هم میخواید تستش کنید؛ من دستورات مهمش رو میذارم برای شروع برید سراغش باقی موارد هم که داکیومنت خودش هست :
uv python list
لیست از تمام ورژنهای پایتون قابل نصب رو نشون میده؛ cpython, pypy رو داره.
uv python install 3.11 3.12 3.13 3.14
تمام ورژنهای پایتون که بهشون اشاره شده رو نصب میکنه (حدود ۳۰-۳۵ مگ هست هر کدوم) دیفالت cpython نصب میشه.
uv init <dir_name>
این دستور پوشه <dir_name> رو براتون میسازه به همراه git, python version, readme, main, pyproject
uv init <dir_name> --lib
اگر خواستید پکیج برای انتشار بنویسید.
uv init
اگر مثل ما پروژه از قبل با مثلا pip ایجاد شده و میخواید بیاید روی uv داخل پوشه پروژه اجراش کنید.
uv add dajngo
پکیج django رو میخوام به پروژه اضافه کنم؛ حتی اگر .venv نساخته باشید این دستور بصورت پیشفرض اینکار رو براتون میکنه؛ که اشتباها روی python سیستم چیزی نصب نکنید.
uv tree
نمایش درختی معادل pip freeze هست.
uv run main.py
برای اجرا استفاده میشه (حتی اگر .venv رو پاک کرده باشید درجا ایجاد میکنه پکیجهارو نصب میکنه و بعد اجرا میکنه که اگر cache رو پاک نکرده باشید در حد میلی ثانیه زمان میبره)
uv venv --python 3.11.11
برای اینکه دقیقا از همین ورژن پایتون استفاده بشه (کلا توی همه کامندها میتونید از --python برای مشخص کردن ورژن دقیق استفاده کنید)
این دستور بهترین دستور برای بچههایی هست که در زمینه AI تحقیق و کار میکنند.
uv sync
فقط .venv رو ایجاد و پکیجها رو نصب میکنه (همه چیز آماده)
uv remove dajngo
برای حذف استفاده میشه.
uv add -r requirements.txt
جهت انتقال از pip به uv
uvx ruff
جایگزین عالی برای pipx
uv tool run ruff check
بدون اینکه ruff رو روی کل سیستم نصب کنید میتونید اجرا کنید
نکته این هست که uvx , uv tool دستورات یکسان هست و دستور بالا اینو میگه که نیازی نیست ابزار رو روی کل سیستم نصب کنی میتونی درجا اجرا و استفاده کنی؛ pipx اینو نداره که خیلی هم کاربردی هست.
uv self update
در نهایت برای آپدیت خود uv ازش استفاده کنید.
برای پروژههای غیر
docker
و شخصی هم خیلی خوبه چون disk کمتری مصرف میکنه (دوستان AI
میدونند توی هر پروژه ورژن متفاوت pytorch
و ... داشتن چقدر جا میگیره) یا حتی یک ورژن یکسان رو هی روی venv
جدا نصب کردن. که uv
اینکارو نمیکنه و به همون نسخهای که دارید symlink
میزنه. (بصورت دیفالت hardlink
میزنه؛ دوستان اشاره کردند)الان تنها مورد کند پروژهای که صحبتش شد
mypy
هست که خب منتظریم ببینیم ty
وضعیتش به کجا خواهد رسید بخصوص اینکه LSP
هم هست و یک تیر و دو نشان خواهد بود.ty github
BY Python Hints
Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283
Share with your friend now:
tg-me.com/pyHints/823